window: Remove has-toplevel-focus property
authorTimm Bäder <mail@baedert.org>
Wed, 8 Feb 2017 12:55:11 +0000 (13:55 +0100)
committerTimm Bäder <mail@baedert.org>
Fri, 31 Mar 2017 07:50:39 +0000 (09:50 +0200)
Since embedded toplevels don't exist anymore, :has-toplevel-focus is
equivalent to :active.

docs/reference/gtk/gtk4-sections.txt
gtk/a11y/gtkaccessibility.c
gtk/a11y/gtkwindowaccessible.c
gtk/gtkwindow.c
gtk/gtkwindow.h
gtk/gtkwindowprivate.h

index 9f5532eb3da37cf838804ac6aab1d65e4b9a663e..5cedb69d50f1de79ec45a9b341dc5a13627eeb9d 100644 (file)
@@ -4752,7 +4752,6 @@ gtk_window_set_screen
 gtk_window_get_screen
 gtk_window_is_active
 gtk_window_is_maximized
-gtk_window_has_toplevel_focus
 gtk_window_list_toplevels
 gtk_window_add_mnemonic
 gtk_window_remove_mnemonic
index 021f828566d486ab11e690aadb7b17c94825c98a..bad3cd51337dd4d92a5c46d708d131dabdf21a37 100644 (file)
@@ -935,7 +935,7 @@ window_removed (AtkObject *atk_obj,
    * Deactivate window if it is still focused and we are removing it. This
    * can happen when a dialog displayed by gok is removed.
    */
-  if (gtk_window_is_active (window) && gtk_window_has_toplevel_focus (window))
+  if (gtk_window_is_active (window))
     g_signal_emit_by_name (child, "deactivate");
 
   g_signal_handlers_disconnect_by_func (widget, (gpointer) window_focus, NULL);
index 017f130d564ca047179e9c795a2e3271ba9a31e6..3941b380722ff5afbf9565a89d6cbf56aba9e197 100644 (file)
@@ -251,7 +251,7 @@ gtk_window_accessible_ref_state_set (AtkObject *accessible)
 
   window = GTK_WINDOW (widget);
 
-  if (gtk_window_has_toplevel_focus (window) && gtk_window_is_active (window))
+  if (gtk_window_is_active (window))
     atk_state_set_add_state (state_set, ATK_STATE_ACTIVE);
 
   gdk_window = gtk_widget_get_window (widget);
index da5c9be3a5fdffcbe637e60469ce9fa1ab859d61..7131884bc444801dec71e5250055fc6589a8599e 100644 (file)
@@ -238,7 +238,6 @@ struct _GtkWindowPrivate
   guint    fullscreen_initially      : 1;
   guint    has_focus                 : 1;
   guint    has_user_ref_count        : 1;
-  guint    has_toplevel_focus        : 1;
   guint    hide_titlebar_when_maximized : 1;
   guint    iconify_initially         : 1; /* gtk_window_iconify() called before realization */
   guint    is_active                 : 1;
@@ -324,7 +323,6 @@ enum {
   PROP_APPLICATION,
   /* Readonly properties */
   PROP_IS_ACTIVE,
-  PROP_HAS_TOPLEVEL_FOCUS,
 
   /* Writeonly properties */
   PROP_STARTUP_ID,
@@ -954,13 +952,6 @@ gtk_window_class_init (GtkWindowClass *klass)
                             FALSE,
                             GTK_PARAM_READABLE);
 
-  window_props[PROP_HAS_TOPLEVEL_FOCUS] =
-      g_param_spec_boolean ("has-toplevel-focus",
-                            P_("Focus in Toplevel"),
-                            P_("Whether the input focus is within this GtkWindow"),
-                            FALSE,
-                            GTK_PARAM_READABLE);
-
   window_props[PROP_TYPE_HINT] =
       g_param_spec_enum ("type-hint",
                          P_("Type hint"),
@@ -1914,9 +1905,6 @@ gtk_window_get_property (GObject      *object,
     case PROP_IS_ACTIVE:
       g_value_set_boolean (value, priv->is_active);
       break;
-    case PROP_HAS_TOPLEVEL_FOCUS:
-      g_value_set_boolean (value, priv->has_toplevel_focus);
-      break;
     case PROP_TYPE_HINT:
       g_value_set_enum (value, priv->type_hint);
       break;
@@ -7855,7 +7843,6 @@ gtk_window_focus_in_event (GtkWidget     *widget,
    */
   if (gtk_widget_get_visible (widget))
     {
-      _gtk_window_set_has_toplevel_focus (window, TRUE);
       _gtk_window_set_is_active (window, TRUE);
 
       if (gtk_window_has_mnemonic_modifier_pressed (window))
@@ -7871,7 +7858,6 @@ gtk_window_focus_out_event (GtkWidget     *widget,
 {
   GtkWindow *window = GTK_WINDOW (widget);
 
-  _gtk_window_set_has_toplevel_focus (window, FALSE);
   _gtk_window_set_is_active (window, FALSE);
 
   /* set the mnemonic-visible property to false */
@@ -10260,7 +10246,6 @@ _gtk_window_get_screen (GtkWindow *window)
  * The return value is %TRUE if the window is active toplevel itself.
  * You might use this function if you wanted to draw a widget
  * differently in an active window from a widget in an inactive window.
- * See gtk_window_has_toplevel_focus()
  * 
  * Returns: %TRUE if the window part of the current active window.
  *
@@ -10274,26 +10259,6 @@ gtk_window_is_active (GtkWindow *window)
   return window->priv->is_active;
 }
 
-/**
- * gtk_window_has_toplevel_focus:
- * @window: a #GtkWindow
- * 
- * Returns whether the input focus is within this GtkWindow.
- * For real toplevel windows, this is identical to gtk_window_is_active(),
- * but for embedded windows, like #GtkPlug, the results will differ.
- * 
- * Returns: %TRUE if the input focus is within this GtkWindow
- *
- * Since: 2.4
- **/
-gboolean
-gtk_window_has_toplevel_focus (GtkWindow *window)
-{
-  g_return_val_if_fail (GTK_IS_WINDOW (window), FALSE);
-
-  return window->priv->has_toplevel_focus;
-}
-
 /**
  * gtk_window_get_group:
  * @window: (allow-none): a #GtkWindow, or %NULL
@@ -10661,7 +10626,7 @@ window_update_has_focus (GtkWindow *window)
 {
   GtkWindowPrivate *priv = window->priv;
   GtkWidget *widget = GTK_WIDGET (window);
-  gboolean has_focus = priv->has_toplevel_focus && priv->is_active;
+  gboolean has_focus = priv->is_active;
 
   if (has_focus != priv->has_focus)
     {
@@ -10786,35 +10751,6 @@ _gtk_window_set_is_toplevel (GtkWindow *window,
   gtk_window_update_debugging ();
 }
 
-/**
- * _gtk_window_set_has_toplevel_focus:
- * @window: a #GtkWindow
- * @has_toplevel_focus: %TRUE if the in
- * 
- * Internal function that sets whether the keyboard focus for the
- * toplevel window (taking into account inter-process embedding.)
- **/
-void
-_gtk_window_set_has_toplevel_focus (GtkWindow *window,
-                                  gboolean   has_toplevel_focus)
-{
-  GtkWindowPrivate *priv;
-
-  g_return_if_fail (GTK_IS_WINDOW (window));
-
-  priv = window->priv;
-
-  has_toplevel_focus = has_toplevel_focus != FALSE;
-
-  if (has_toplevel_focus != priv->has_toplevel_focus)
-    {
-      priv->has_toplevel_focus = has_toplevel_focus;
-      window_update_has_focus (window);
-
-      g_object_notify_by_pspec (G_OBJECT (window), window_props[PROP_HAS_TOPLEVEL_FOCUS]);
-    }
-}
-
 /**
  * gtk_window_set_auto_startup_notification:
  * @setting: %TRUE to automatically do startup notification
index c13eb6acdcf700e6ab6ddb9f7781b9a22b9c2386..771feeeb0541eb83163cba0df535289844ebfbad 100644 (file)
@@ -263,8 +263,6 @@ GdkScreen* gtk_window_get_screen           (GtkWindow           *window);
 
 GDK_AVAILABLE_IN_ALL
 gboolean   gtk_window_is_active                (GtkWindow           *window);
-GDK_AVAILABLE_IN_ALL
-gboolean   gtk_window_has_toplevel_focus       (GtkWindow           *window);
 
 GDK_AVAILABLE_IN_ALL
 void       gtk_window_set_decorated            (GtkWindow *window,
index 4d53ee43728e3bc2e67025ec96821cd35be80c27..ce1383b1739a636dbacafeb0fa18effd55145e05 100644 (file)
@@ -46,8 +46,6 @@ gboolean        _gtk_window_group_widget_is_blocked_for_device (GtkWindowGroup *
                                                                 GtkWidget      *widget,
                                                                 GdkDevice      *device);
 
-void            _gtk_window_set_has_toplevel_focus (GtkWindow *window,
-                                                    gboolean   has_toplevel_focus);
 void            _gtk_window_unset_focus_and_default (GtkWindow *window,
                                                      GtkWidget *widget);